home *** CD-ROM | disk | FTP | other *** search
/ Rockford Magazine / Rockford_Magazine_030_19xx_-_de_Disk_2_of_2_Side_A.d64 / 55convert sidzak < prev    next >
Text File  |  2023-02-26  |  13KB  |  339 lines

  1. =======================================
  2. ROCKFORD-MAGAZIN 09 TEXTFILE 10.03.1994
  3. =======================================
  4.  AMIGA GO C64 RUBRIK: SIDZAKCONVERT
  5. =======================================
  6. Hallo! Am Amiga gibt es ein geniales
  7. PRG, mit dem man ALLE C64 Muzaks ab-
  8. spielen kann! Es nennt sich PlaySID
  9. und hat inzwischen in der neuen Version
  10. des A64 (Amiga-C64-EMU) Einzug gehal-
  11. ten. Das PRG wird laufend verbessert.
  12. Version 2.2 findet Ihr auf der
  13. Amiga-Freeware-Disk SAAR 616! 
  14. Wie man nun C64 ZAK auf den Amiga holt
  15. und was man dabei beachten muss,
  16. erfaehrst Du im folgenden Text (80Z).
  17. Es wird dabei auch darauf eingegangen,
  18. wie man aus (c) Soft Musik klauen
  19. (rippen) kann. Echte Freeware Fans
  20. sollten hier aber nicht mitmachen, man
  21. kann ja auch die vielen C64 FD Muzaks
  22. auf den Amiga uebertragen, damit die
  23. Amiga Fans mal sehen, welch gute
  24. Composer es am C64 gibt!!
  25. =======================================
  26.  
  27. ==============================================================================
  28.  
  29. **************************************************************
  30. ****** HOW TO CONVERT C64 TUNES TO AMIGA PLAYSID FORMAT ******
  31. **************************************************************
  32.  
  33. Requirements:
  34.  
  35.         * You have to know 6502 machinecode quite well.
  36.         * You have access to a C64 or a good Emulator
  37.         * You have an good machine code monitor to your C64 or Emulator
  38.  
  39.         and it will be easier if...
  40.  
  41.         * You have a 1541 diskdrive
  42.         * You have a transfer cable C64-Amiga (or RAM-TRANS etc.)
  43.         * You have already ripped tunes
  44.         * You know a lot about SID
  45.  
  46. Ripping:
  47.  
  48.         This is often a hard thing to do. You should locate where in
  49.         memory that the musicplayer and data is. If it is spread into
  50.         several parts, then you have to write memory transfer routines.
  51.         You should find where to call to init and start the different
  52.         tunes. You then save the music in one (this is very important)
  53.         file. You should always try to locate as many tunes or sounds
  54.         as possible, so that nothing is forgotten. Otherwise your job
  55.         maybe will be re-done by another guy who has found more tunes.
  56.  
  57. Converting:
  58.  
  59.         This is easier. If you have already ripped tunes that consists
  60.         of more than one file, see instructions on ripping. Now you
  61.         should rewrite the music player so that it can be thought of as
  62.         two major subroutines (sometimes this is already the case, like
  63.         Maniacs of Noise). The first subroutine will be called by PlaySID
  64.         with the accumulator set to the tunenumber (hex $00-$FF). This
  65.         should initalize all things like volume etc. The second subroutine
  66.         is the real music playing part. This will be called by PlaySID
  67.         each 1/50 or 1/60 second (set by parameters in .info). Note that
  68.         this routine routine should be ended by either RTI, RTS or a jump
  69.         to address $Exxx (this because the non-used bytes at $E000-FFFF is
  70.         filled with $40=RTI). If you use RTS you must then also check that
  71.         the stackpointer is ok (the same as when called from PlaySID).
  72.         Note that the memory transfer routines should be in the first
  73.         subroutine. Note also that PlaySID initializes all 64k of memory and
  74.         reloads the musicplayer each time you press play. Note also that
  75.         the memory control register ($01) is of nearly no use under PlaySID.
  76.         It sees all memory as ram (even $D000-$DFFF!).
  77.  
  78.         Sometimes the music uses the fourth channel, like sample channel.
  79.         This is done by changing the volume ($D418) very often. Usually
  80.         this is programmed using the NMI ($0318 or $FFFA). PlaySID uses
  81.         another metod. The SID registers are enhanced with several new
  82.         registers, see below. You have to write a routine that is a part
  83.         of the second subroutine. This routine replaces the NMI routine,
  84.         and with that follows that the NMI routine are not used anymore. For
  85.         some examples look below (although they're not NMI's but they'll
  86.         explain the way to convert). Please always write to the START reg
  87.         ($D41D) after you have set the other regs, for future revisions
  88.         of PlaySID.
  89.  
  90. Transfering:
  91.  
  92.         When you transfer the files, you don't have to remove the
  93.         2 bytes in the beginning of the file (if you let them be, you
  94.         could also use the files in some C64emulator that maybe will be
  95.         released). If you haven't got the opportunity to transfer by
  96.         yourself, you could send the files to us (the authors of PlaySID)
  97.         on a 5 1/4 disk or even cassette. If you do, the you must
  98.         include the information about the .info parameters.
  99.  
  100. Making the Icon:
  101.  
  102.         Just copy an icon from an existing PlaySID file. For example
  103.         copy arkanoid.info to <filename>.info. Then select the icon in
  104.         workbench and select Information in the workbench menu. Now you
  105.         change the parameters to that of your file. Look at PlaySID.doc
  106.         for a complete description of the parameters. It is very much
  107.         appreciated that you also include information about author and
  108.         copyright. You could even include lines like RIPPER="xxxx" or
  109.         VERSION="xxxxx", because these lines are not seen by PLAYSID.
  110.  
  111. Appendix:
  112.  
  113. *********************
  114. * NEW SID REGISTERS *
  115. *********************
  116.  
  117.         ADDRESS VALUE   FUNCTION                        USAGE
  118.  
  119.         D41D    00-FC   Nr of tones-1                   Galway-Noise (START)
  120.                 FD      Stop Sampling                   Sample (STOP)
  121.                 FC      Start Sampling with 1/4         Sample (START)
  122.                         volume
  123.                 FE      Start Sampling with 1/2         Sample (START)
  124.                         volume
  125.                 FF      Start Sampling                  Sample (START)
  126.  
  127.         D41E    00-FF   ToneData address lowbyte        Galway-Noise
  128.         D41F    00-FF   ToneData address highbyte       Galway-Noise
  129.         D41E    00-FF   SampleData address low          Sample
  130.         D41F    00-FF   SampleData address high         Sample
  131.  
  132.         D43D    00-FF   Tonelength (in samples)         Galway-Noise
  133.         D43E    00-0F   Volume of Noise                 Galway-Noise
  134.         D43D    00-FF   SampleData end addr. low        Sample
  135.         D43E    00-FF   SampleData end addr. high       Sample
  136.  
  137.         D43F    00-FF   Period for each value of        Galway-Noise
  138.                         ToneData (in C64-cycles)
  139.                 00-FE   Nr times of Repeat              Sample
  140.                 FF      Continious sample               Sample
  141.  
  142.         D45D    00-FF   Period for value 0 of           Galway-Noise
  143.                         ToneData (in C64-cycles)
  144.                 00-FF   Period for samples lowbyte      Sample
  145.         D45E    00-FF   Period for samples highbyte     Sample
  146.                         (in C64-cycles)
  147.  
  148.         D45F    00,01   Nr of bytes to add after        Sample
  149.                 02,04   Reading one nibble (4 bits)
  150.                 08...   (i.e. Octave) ,usually 00
  151.  
  152.         D47D    00      Sampleorder: Lownibble          Sample
  153.                         ,Highnibble (the most used)
  154.                 01      Sampleorder: Highnibble         Sample
  155.                         ,Lownibble
  156.  
  157.         D47E    00-FF   SampleData repeatadd low        Sample
  158.         D47F    00-FF   SampleData repeatadd high       Sample
  159.  
  160.  
  161. * EXAMPLES *
  162. ; *** MARTIN GALWAY *** *** NOISE ***
  163. ; 6502 Routine:
  164. ; Loop of Y=5 to 0 step -1
  165. ; Loop of X=19 to 0 step -1
  166. ; Read $B64E,Y in A
  167. ; Wait A*73 cycles
  168. ; Wait 22 cycles
  169. ; Add 7 to volume
  170. ; End Loop X
  171. ; End Loop Y
  172. ; END
  173. ;
  174. ; Replacement with:
  175. ; D41D=$05
  176. ; D43D=$19
  177. ; D41E=$4E, D41F=$B6
  178. ; D43F=$73
  179. ; D45D=$22
  180. ; D43E=$07
  181. ;
  182. ; *** MARTIN GALWAY *** *** SAMPLE ***
  183. ; 6502 Routine:
  184. ; Loop of Y=0 to 100 step 1
  185. ; Read $B64E,Y in A
  186. ; Write Lownibble of A in Volumereg
  187. ; Wait 74 cycles
  188. ; Write Highnibble of A in Volumereg
  189. ; Wait 74 cycles
  190. ; End Loop Y
  191. ; Do it one more time
  192. ; END
  193. ;
  194. ; Replacement with:
  195. ; D41D=$FF
  196. ; D41E=$4E, D41F=$B6
  197. ; D43D=$4E, D43E=$B7
  198. ; D45D=$74, D45E=$00
  199. ; D45F=$00
  200. ; D47D=$00
  201. ; D43F=$01
  202. ; D47E=$4E, D47F=$B6
  203. ;
  204. ;
  205.  
  206. ***********************************
  207. * UNIMPLEMENTED 6502 INSTRUCTIONS *
  208. ***********************************
  209.  
  210. Complete list of the unimplemented instructions for the 6510 microprocessor.
  211. (C) 1984,1992 H/kan Sundell
  212.  
  213. Notes: In the listing belove there are some shortcuts used, A = Accumulator
  214.        , X = Index register X , Y = Index register Y , SP = Stackpointer
  215.        , M = byte in Memory , -> = is Stored in. The flag settings are,
  216.        unless other specified, calculated in the same way as the consisting
  217.        intructions.
  218.  
  219. Code    Adress-mode     Description
  220. 02      ---             Total HALT
  221. 03      (Ind,X)         ASL,ORA
  222. 04      Zeropage        NOP
  223. 07      Zeropage        ASL,ORA
  224. 0B      Immediate       AND #$xx,ASL A with only setting flags
  225. 0C      Absolute        NOP
  226. 0F      Absolute        ASL,ORA
  227. 12      ---             Total HALT
  228. 13      (Ind),Y         ASL,ORA
  229. 14      Zeropage        NOP
  230. 17      Zeropage,X      ASL,ORA
  231. 1A      Implied         NOP
  232. 1B      Absolute,Y      ASL,ORA
  233. 1C      Absolute        NOP
  234. 1F      Absolute,X      ASL,ORA
  235.  
  236. 22      ---             Total HALT
  237. 23      (Ind,X)         ROL,AND
  238. 27      Zeropage        ROL,AND
  239. 2B      Immediate       AND #$xx,ROL A with only setting flags
  240. 2F      Absolute        ROL,AND
  241. 32      ---             Total HALT
  242. 33      (Ind),Y         ROL,AND
  243. 34      Zeropage        NOP
  244. 37      Zeropage,X      ROL,AND
  245. 3A      Implied         NOP
  246. 3B      Absolute,Y      ROL,AND
  247. 3C      Absolute        NOP
  248. 3F      Absolute,X      ROL,AND
  249.  
  250. 42      ---             Total HALT
  251. 43      (Ind,X)         LSR,EOR
  252. 44      Zeropage        NOP
  253. 47      Zeropage        LSR,EOR
  254. 4B      Immediate       AND #$xx,LSR A
  255. 4F      Absolute        LSR,EOR
  256. 52      ---             Total HALT
  257. 53      (Ind,Y)         LSR,EOR
  258. 54      Zeropage        NOP
  259. 57      Zeropage,X      LSR,EOR
  260. 5A      Implied         NOP
  261. 5B      Absolute,Y      LSR,EOR
  262. 5C      Absolute        NOP
  263. 5F      Absoulte,X      LSR,EOR
  264.  
  265. 62      ---             Total HALT
  266. 63      (Ind,X)         ROR,ADC
  267. 64      Zeropage        NOP
  268. 67      Zeropage        ROR,ADC
  269. 6B      Immediate       AND #$xx,ROR A
  270. 6F      Absoulte        ROR,ADC
  271. 72      ---             Total HALT
  272. 73      (Ind),Y         ROR,ADC
  273. 74      Zeropage        NOP
  274. 77      Zeropage,X      ROR,ADC
  275. 7A      Implied         NOP
  276. 7B      Absolute,Y      ROR,ADC
  277. 7C      Absolute        NOP
  278. 7F      Absolute,X      ROR,ADC
  279.  
  280. 80      Zeropage        NOP
  281. 82      Zeropage        NOP
  282. 83      (Ind,X)         0->M if X=0 , No flags set
  283. 87      Zeropage        A and X -> M , No flags set
  284. 8B      Immediate       M and X -> A (bits 7-1) , M0 and X0 and A0 -> A0
  285.                         , No flags set
  286. 8F      Absolute        A and X -> M , No flags set
  287. 92      ---             Total HALT
  288. 93      (Ind),Y         A and X and $21 -> M , No flags set
  289. 97      Zeropage,Y      A and X -> M , No flags set
  290. 9B      Absolute,Y      A and X and $21 -> M , A and X -> SP, No flags set
  291. 9C      Absolute,X      A and Y and $21 -> M , No flags set
  292. 9E      Absolute,Y      A and X and $21 -> M , No flags set
  293. 9F      Absolute,Y      A and X and $21 -> M , No flags set
  294.  
  295. A3      (Ind,X)         LDA,LDX
  296. A7      Zeropage        LDA,LDX
  297. AB      Immediate       LDA,LDX
  298. AF      Absolute        LDA,LDX
  299. B2      ---             Total HALT
  300. B3      (Ind),Y         LDA,LDX
  301. B7      Zeropage,Y      LDA,LDX
  302. BB      Absolute,Y      SP and M -> A,X,SP
  303. BF      Absolute,Y      LDA,LDX
  304.  
  305. C2      Zeropage        NOP
  306. C3      (Ind,X)         DEC,CMP
  307. C7      Zeropage        DEC,CMP
  308. CB      Immediate       (X and A) - M -> X
  309. CF      Absolute        DEC,CMP
  310. D2      ---             Total HALT
  311. D3      (Ind),Y         DEC,CMP
  312. D4      Zeropage        NOP
  313. D7      Zeropage,X      DEC,CMP
  314. DA      Implied         NOP
  315. DB      Absolute,Y      DEC,CMP
  316. DC      Absolute        NOP
  317. DF      Absolute,X      DEC,CMP
  318.  
  319. E2      Zeropage        NOP
  320. E3      (Ind,X)         INC,SBC
  321. E7      Zeropage        INC,SBC
  322. EB      Immedite        SBC #$xx
  323. EF      Absolute        INC,SBC
  324. F2      ---             Total HALT
  325. F3      (Ind),Y         INC,SBC
  326. F4      Zeropage        NOP
  327. F7      Zeropage,X      INC,SBC
  328. FA      Implied         NOP
  329. FB      Absolute,Y      INC,SBC
  330. FC      Absolute        NOP
  331. FF      Absolute,X      INC,SBC
  332.  
  333.                                  AMIcon
  334. ==============================================================================
  335.  
  336. =======================================
  337. 100% FREEWARE        ROCKFORD-FD MAG 09
  338. =======================================
  339.